#ifndef __LINKLISTWITHHEAD_H__
#define __LINKLISTWITHHEAD_H__

#include<stdio.h>
#include<stdlib.h>

//类型的声明
//假设用户数据的类型是  Elemtype
typedef  int  Datatype;
//链表数据元素的类型
typedef struct  node 
{
    Datatype   data;               //用户数据,数据域
    struct  node  *next;        //存储元素关系,关系域
}Node,*PNode;

//管理者节点类型
typedef struct head
{
    Node *first;   //第一个数据节点的地址
    Node *last;    //最后一个数据节点的地址
    int nodenum;        //链表中的元素个数
}  Head;

Head *createList();
void insertToList(Datatype num,Head *h); 
void printList(Head *h);
void clearList(Head *h);
void deleteList(Head *h);
Head *createListByStr(char *str);
Head *addTwoBigNum(Head *h1,Head *h2);
void Meger_LinkedListWithHead(Head *h1,Head *h2);

#endif